Aspects of the present invention are directed to improving code in virtual machines.
Computing systems may be characterized as including nested virtual machines defined therein. In these cases, a virtual machine, such as an inner virtual machine, may be executed inside another virtual machine, such as an outer virtual machine.
With such configurations, techniques for improving the performance of the nested virtual machines have been proposed. Typically, these techniques involve the inner virtual machine communicating with the outer virtual machine by sending inner machine instructions to the outer virtual machine over a communication channel. The outer virtual machine then uses a just-in-time (JIT) compiler to translate these instructions directly to native instructions that can be executed directly on the hardware on which the outer virtual machine is executing.
It has been seen, however, that implementing a communication channel to communicate between the outer and inner virtual machines requires significant engineering effort on both virtual machines.